<?php
// // 创建一个有异常处理的函数
// function checkNum($number)
// {
//     if($number>1)// 它检测数字是否大于 1，如果大于 1 ，抛出异常
//     {
//         throw new Exception("变量值必须小于等于 1");// 抛出异常
//     }
//         return true;
// }
    
// // 在 try 块 触发异常
// try
// {
//     checkNum(2);
//     // 如果抛出异常，以下文本不会输出
//     echo '如果输出该内容，说明 $number 变量';
// }
// // 捕获异常
// catch(Exception $e)
// {
//     echo 'Message: ' .$e->getMessage();// catch 代码块接收到该异常，并创建一个包含异常信息的对象 $e，输出来自该异常的错误消息
// }
?>

<?php
// // 自定义继承 PHO exception 类的处理异常的类
// class customException extends Exception
// {
//     // 创建错误消息函数，如果错误，返回一条错误消息
//     public function errorMessage()
//     {
//         // 错误信息，包含错误行号，错误文件名和错误消息
//         $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile()
//         .': <b>'.$this->getMessage().'</b> 不是一个合法的 E-Mail 地址';
//         return $errorMsg;
//     }
// }
 
// $email = "someone@example...com";// 设置错误邮箱
 
// try
// {
//     // 检测邮箱
//     if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
//     {
//         // 如果是个不合法的邮箱地址，抛出异常
//         throw new customException($email);
//     }
// }
 
// catch (customException $e)
// {
// echo $e->errorMessage();// catch 代码块接收到该异常，并创建一个包含异常信息的对象 $e，输出自创错误信息
// }
?>

<?php
// 自定义继承 PHO exception 类的处理异常的类
class customException extends Exception
{
    // 创建错误消息函数，如果错误，返回一条错误消息
    public function errorMessage()
    {
        // 错误信息，包含错误行号，错误文件名和错误消息
        $errorMsg = $this->getMessage().' 不是一个合法的 E-Mail 地址。';
        return $errorMsg;
    }
}
 
$email = "someone@example.com";// 设置错误邮箱
 
try
{
    try
    {
        // 检测 "example" 是否在邮箱地址中
        if(strpos($email, "example") !== FALSE)
        {
            // 如果是个不合法的邮箱地址，抛出异常
            throw new Exception($email);
        }
    }
    catch(Exception $e)
    {
        // 重新抛出异常
        throw new customException($email);
    }
}
catch (customException $e)
{
    // 显示自定义信息
    echo $e->errorMessage();
}
?>

<?php
// // 自定义继承 PHO exception 类的处理异常的类
// class customException extends Exception
// {
//     // 创建错误消息函数，如果错误，返回一条错误消息
//     public function errorMessage()
//     {
//         // 错误信息，包含错误行号，错误文件名和错误消息
//         $errorMsg = '错误行号 '.$this->getLine().' in '.$this->getFile()
//         .': <b>'.$this->getMessage().'</b> 不是一个合法的 E-Mail 地址';
//         return $errorMsg;
//     }
// }
 
// $email = "someone@..example.com";// 设置错误邮箱
 
// try
// {
//     // 检测邮箱
//     if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
//     {
//         // 如果是个不合法的邮箱地址，抛出异常
//         throw new customException($email);
//     }
//     // 检测 "example" 是否在邮箱地址中
//     if(strpos($email, "example") !== FALSE)
//     {
//         // 如果 "example" 在邮箱地址中，抛出异常
//         throw new Exception("$email 是 example 邮箱");
//     }
// }
// catch (customException $e)
// {
//     echo $e->errorMessage();// catch 代码块接收到 customException 异常，并创建一个包含异常信息的对象 $e，输出自创错误信息
// }
// catch(Exception $e)
// {
//     echo $e->getMessage();// catch 代码块接收到 Exception 异常，并创建一个包含异常信息的对象 $e，输出来自该异常的错误消息
// }
?>

<?php
function myException($exception)
{
    echo "<b>Exception:</b> " , $exception->getMessage();
}
 
set_exception_handler('myException');
 
throw new Exception('Uncaught Exception occurred');
?>